import store from "@/store";
const baseURL = "https://pcapi-xiaotuxian-front-devtest.itheima.net";
let timeId
const request = {
    invoke(args) {
        // 发送请求显示加载中
        clearInterval(timeId)
        timeId = setTimeout(() => {
            uni.showLoading({ title: "加载中" });
        }, 800);
        if (!args.url.startsWith("http")) {
            //  如果你是以http开头则不用拼接
            args.url = baseURL + args.url;
        }
        args.header = {
            ...args.header, // 保留原本的 header
            "source-client": "miniapp", // 添加小程序端调用标识
        };
        if (store.state.user.profile) {
            args.header.Authorization = store.state.user.profile.token
        }
    },
    complete(res) {
        clearInterval(timeId)
        // 请求结束关闭加载中
        uni.hideLoading();
    },
};
uni.addInterceptor("request", request);// 拦截请求
uni.addInterceptor("uploadFile", request);// 拦截文件上传

// 基于uni.request 进行二次封装 这样返回的就不再是一个数组 而是一个函数 可以和以前一样async await 拿返回的结果
export default (options) => {
    return new Promise((resolve, reject) => {
        uni.request({
            ...options,
            success(res) {
                if (res.statusCode >= 200 && res.statusCode < 300) {
                    resolve(res.data);
                } else {
                    if (res.statusCode === 401) {
                        console.log(111);
                        uni.navigateTo({ url: '/pages/login/index' });
                    }
                    reject(res);
                }
            },
            fail(err) {
                reject(res);
            },
        });
    });
};